package com.huacai.homestay.mapper;

import java.util.List;
import com.huacai.homestay.domain.Homestay;
import com.huacai.homestay.domain.HomestayTags;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 酒店Mapper接口
 * 
 * @author hsj
 * @date 2025-05-14
 */
public interface HomestayMapper 
{
    /**
     * 查询酒店
     * 
     * @param homestayId 酒店主键
     * @return 酒店
     */
    public Homestay selectHomestayByHomestayId(String homestayId);

    /**
     * 查询酒店列表
     * 
     * @param homestay 酒店
     * @return 酒店集合
     */
    public List<Homestay> selectHomestayList(Homestay homestay);

    /**
     * 新增酒店
     * 
     * @param homestay 酒店
     * @return 结果
     */
    public int insertHomestay(Homestay homestay);

    /**
     * 修改酒店
     * 
     * @param homestay 酒店
     * @return 结果
     */
    public int updateHomestay(Homestay homestay);

    /**
     * 删除酒店
     * 
     * @param homestayId 酒店主键
     * @return 结果
     */
    public int deleteHomestayByHomestayId(String homestayId);

    /**
     * 批量删除酒店
     * 
     * @param homestayIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHomestayByHomestayIds(String[] homestayIds);

    /**
     * 批量删除酒店标签
     * 
     * @param homestayIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHomestayTagsByHomestayIds(String[] homestayIds);
    
    /**
     * 批量新增酒店标签
     * 
     * @param homestayTagsList 酒店标签列表
     * @return 结果
     */
    public int batchHomestayTags(List<HomestayTags> homestayTagsList);
    

    /**
     * 通过酒店主键删除酒店标签信息
     * 
     * @param homestayId 酒店ID
     * @return 结果
     */
    public int deleteHomestayTagsByHomestayId(String homestayId);


    /**
     * 通过景点ID查询附近酒店列表
     */
    List<Homestay> selectHomestayBySpotsId(String spotsId);

    /**
     * 通过餐厅ID查询附近酒店
     */
//    @Select("SELECT * FROM homestay WHERE near_restaurant = #{restaurantId}")
    List<Homestay> selectHomestayByRestaurantId(Integer restaurantId);
    /**
     * 查询特色酒店列表和酒店标签
     */
    List<Homestay> selectHomestayOrTagsList(Homestay homestay);
}
